#ifndef WILL_RETURN_TESTS_H
#define WILL_RETURN_TESTS_H

#include <cppunit/extensions/HelperMacros.h>

#include "Fake.h"

namespace WillReturnTests
{
    class ITestClass
    {
    public:
        virtual int methodWithNoArguments() = 0;
        virtual int methodWithOneArgument(int a) = 0;
        virtual int methodWithTwoArguments(int a, int b) = 0;
        virtual int methodWithThreeArguments(int a, int b, int c) = 0;
        virtual int methodWithFourArguments(int a, int b, int c, int d) = 0;
    };

    class When_no_argument_matching_is_used : public CPPUNIT_NS::TestFixture
    {
        CPPUNIT_TEST_SUITE(WillReturnTests::When_no_argument_matching_is_used);
        CPPUNIT_TEST(Assure_configured_value_is_returned);
        CPPUNIT_TEST_SUITE_END();

    public:
        void Assure_configured_value_is_returned();

    private:
        Fake<ITestClass> _testClass;
    };
}

#endif
